package com.feib.soeasy.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 * @title (#)Payer.java<br>
 * @description 繳款人資料<br>
 * @author Anson Tsai<br>
 * @version 1.0.0 2010/11/25
 * @copyright Far Eastern International Bank Copyright (c) 2010<br>
 * @2011/2/6 create by Anson Tsai<br>
 */
@Entity
@Table(name = "PAYER")
public class Payer extends AuditEntity {

    /**
     * <code>serialVersionUID</code> 的註解
     */
    private static final long serialVersionUID = 1L;

    /**
     * PK in Table
     */
    private Long payerPk;

    /**
     * 所屬繳款人匯入檔
     */
    private UploadFile uploadFile;

    /**
     * 所屬帳單業者</br> 要等於 UPLOADFILE.GROUP</br>
     */
    private Group group;

    /**
     * 繳款人編號
     */
    private String payerNo;

    /**
     * 姓名
     */
    private String payerName;

    /**
     * Email
     */
    private String payerEmail;

    /**
     * Phone number
     */
    private String payerTelNo;

    /**
     * Mobile number
     */
    private String payerCellNo;

    /**
     * 坪數
     */
    private Double levelGround;

    /**
     * 車位數
     */
    private Integer parkingCount;

    /**
     * 門牌號碼
     */
    private String houseNo;

    /**
     * 聯絡地址
     */
    private String payerAddress;

    /**
     * 備註
     */
    private String payerMemo;
         
    

    /**
     * @return 傳回 payerPk。
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "PAYER_PK", nullable = false)
    public Long getPayerPk() {
        return payerPk;
    }

    /**
     * @param payerPk 要設定的 payerPk。
     */
    public void setPayerPk(Long payerPk) {
        this.payerPk = payerPk;
    }

    /**
     * @return 傳回 uploadFile。
     */
    @ManyToOne
    @JoinColumn(name = "UPLOAD_FILE_PK")
    public UploadFile getUploadFile() {
        return uploadFile;
    }

    /**
     * @param uploadFile 要設定的 uploadFile。
     */
    public void setUploadFile(UploadFile uploadFile) {
        this.uploadFile = uploadFile;
    }

    /**
     * @return 傳回 group。
     */
    @ManyToOne
    @JoinColumn(name = "GROUP_PK", nullable = false)
    public Group getGroup() {
        return group;
    }

    /**
     * @param group 要設定的 group。
     */
    public void setGroup(Group group) {
        this.group = group;
    }

    /**
     * @return 傳回 payerName。
     */
    @Column(name = "PAYER_NAME", length = 20)
    public String getPayerName() {
        return payerName;
    }

    /**
     * @param payerName 要設定的 payerName。
     */
    public void setPayerName(String payerName) {
        this.payerName = payerName;
    }

    /**
     * @return 傳回 payerEmail。
     */
    @Column(name = "PAYER_EMAIL", length = 100)
    public String getPayerEmail() {
        return payerEmail;
    }

    /**
     * @param payerEmail 要設定的 payerEmail。
     */
    public void setPayerEmail(String payerEmail) {
        this.payerEmail = payerEmail;
    }

    /**
     * @return 傳回 payerTelNo。
     */
    @Column(name = "PAYER_TELNO", length = 20)
    public String getPayerTelNo() {
        return payerTelNo;
    }

    /**
     * @param payerTelNo 要設定的 payerTelNo。
     */
    public void setPayerTelNo(String payerTelNo) {
        this.payerTelNo = payerTelNo;
    }

    /**
     * @return 傳回 payerCellNo。
     */
    @Column(name = "PAYER_CELLNO", length = 20)
    public String getPayerCellNo() {
        return payerCellNo;
    }

    /**
     * @param payerCellNo 要設定的 payerCellNo。
     */
    public void setPayerCellNo(String payerCellNo) {
        this.payerCellNo = payerCellNo;
    }

    /**
     * @return 傳回 levelGround。
     */
    @Column(name = "LEVEL_GROUND")
    public Double getLevelGround() {
        return levelGround;
    }

    /**
     * @param levelGround 要設定的 levelGround。
     */
    public void setLevelGround(Double levelGround) {
        this.levelGround = levelGround;
    }

    /**
     * @return 傳回 parkingCount。
     */
    @Column(name = "PARKING_COUNT")
    public Integer getParkingCount() {
        return parkingCount;
    }

    /**
     * @param parkingCount 要設定的 parkingCount。
     */
    public void setParkingCount(Integer parkingCount) {
        this.parkingCount = parkingCount;
    }

    
    /**
     * @return 傳回 houseNo。
     */
    @Column(name = "HOUSE_NO", length = 200)
    public String getHouseNo() {
        return houseNo;
    }

    /**
     * @param houseNo 要設定的 houseNo。
     */
    public void setHouseNo(String houseNo) {
        this.houseNo = houseNo;
    }

    /**
     * @return 傳回 payerAddress。
     */
    @Column(name = "PAYER_ADDRESS", length = 255)
    public String getPayerAddress() {
        return payerAddress;
    }

    /**
     * @param payerAddress 要設定的 payerAddress。
     */
    public void setPayerAddress(String payerAddress) {
        this.payerAddress = payerAddress;
    }

    /**
     * @return 傳回 payerMemo。
     */
    @Column(name = "PAYER_MEMO", length = 255)
    public String getPayerMemo() {
        return payerMemo;
    }

    /**
     * @param payerMemo 要設定的 payerMemo。
     */
    public void setPayerMemo(String payerMemo) {
        this.payerMemo = payerMemo;
    }

    /**
     * @return 傳回 payerNo。
     */
    @Column(name = "PAYER_NO", length = 20)
    public String getPayerNo() {
        return payerNo;
    }

    /**
     * @param payerNo 要設定的 payerNo。 
     */
    public void setPayerNo(String payerNo) {
        this.payerNo = payerNo;
    }

    
}
